package com.cyan.note.enums;

import lombok.Getter;

/**
 * 订单状态枚举
 * 
 * @author ZhangzhenYu
 * @since 2025-01-13
 */
@Getter
public enum OrderStatus {
    
    /**
     * 待开始
     */
    PENDING("pending", "待开始"),
    
    /**
     * 进行中
     */
    IN_PROGRESS("in_progress", "进行中"),
    
    /**
     * 未结账
     */
    UNPAID("unpaid", "未结账"),
    
    /**
     * 已付款
     */
    PAID("paid", "已付款"),
    
    /**
     * 已结束（无收入）
     */
    ENDED_NO_INCOME("ended_no_income", "已结束（无收入）"),
    
    /**
     * 已结束（部分收入）
     */
    ENDED_PARTIAL_INCOME("ended_partial_income", "已结束（部分收入）");

    private final String code;
    private final String name;

    OrderStatus(String code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 根据code获取枚举
     */
    public static OrderStatus fromCode(String code) {
        for (OrderStatus status : values()) {
            if (status.code.equals(code)) {
                return status;
            }
        }
        throw new IllegalArgumentException("未知的订单状态: " + code);
    }
}